package com.srwl.mytx.service;


import com.srwl.mytx.domain.Comment;
import com.srwl.mytx.domain.CommonResult;

import java.util.Map;

import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.POST;

/**
 * 默认对post请求上传数据加密,并携带token
 *
 * @Headers("Encrypt:0") 携带 这个header，上传数据，在拦截器(EncryptInterceptor)中不会加密，服务端收到数据，也不会做解密处理，
 * @SerializedField(encode = false) 这个注解 表示此请求不需要对上传数据做处理，比如不需要添加token , 默认要携带token的, (MyConverterFactory 中 处理)
 */
public interface CommentService {
    /**
     * 创建评论
     *
     * @return
     */


    @POST("/es/comment/create")
    Call<CommonResult> createComment(@Body Comment comment);

    /**
     * 用于转发 里面创建评论
     *
     * @param comment
     * @return
     */
    @POST("/es/comment/createComment_v1")
    Call<CommonResult> createComment_v1(@Body Comment comment);


    /**
     * 创建子评论
     *
     * @return
     */

    @POST("/es/comment/createChildComment")
    Call<CommonResult> createChildComment(@Body Object body);

  /**
     * 转发捐赠创建子评论
     *
     * @return
     */

    @POST("/es/comment/createChildComment_v1")
    Call<CommonResult> createForwardChildComment(@Body Object body);


    /**
     * 获取某主题的评论
     *
     * @param info
     * @return
     */

    @POST("/es/comment/get")
    Call<CommonResult> getComment(@Body Map<String, Object> info);

    /**
     * 获取某条评论的子评论
     *
     * @param info
     * @return
     */

    @POST("/es/comment/getChildComment")
    Call<CommonResult> getChildComment(@Body Map<String, Object> info);


    /**
     * 给主题点赞
     *
     * @return
     */

    @POST("/es/comment/addTopicPraise")
    Call<CommonResult> addTopicPraise(@Body Object body);

    /**
     * 取消主题点赞
     *
     * @return
     */

    @POST("/es/comment/removeTopicPraise")
    Call<CommonResult> removeTopicPraise(@Body Object body);

    /**
     * 给评论点赞
     *
     * @param info
     * @return
     */

    @POST("/es/comment/commentPraise")
    Call<CommonResult> commentPraise(@Body Map<String, Object> info);

    /**
     * 取消给评论的点赞
     * @param info
     * @return
     */
    @POST("/es/comment/removeCommentPraise")
    Call<CommonResult> removeCommentPraise(@Body Map<String, Object> info);

    @POST("/es/comment/accusationComment")
    Call<CommonResult> accusationComment(@Body Object body);
}
